#pragma once

namespace mgfx
{
	typedef int ShaderID;

	struct ShaderDefine
	{
		ShaderDefine(const std::string & name, const std::string & definition)
		{ Name = name; Definition = definition; }
		ShaderDefine(){}
		std::string Name;
		std::string Definition;
	};

	ShaderID loadShaderFromFile(const std::string & fileName);
	ShaderID loadShaderFromFile(const std::string & fileName, const ShaderDefine & define);
	ShaderID loadShaderFromFile(const std::string & fileName, const ShaderDefine & define, const ShaderDefine & define2);
	ShaderID loadShaderFromFile(const std::string & fileName, const std::vector<ShaderDefine> & defines);
	
}